Równanie Sylvestera
Równanie Sylvestera – często spotykane w teorii sterowania równanie macierzowe mające postać:
gdzie to macierze o wymiarach
Istnienie i jednoznaczność rozwiązania
[edytuj | edytuj kod]Korzystając z notacji iloczynu Kroneckera i operatora wektoryzacji powyższe równanie może być zapisane w postaci
gdzie jest macierzą jednostkową o rozmiarach
W takiej postaci równanie Sylvestera może być interpretowane jako układ liniowy o wymiarze (W przypadku poszukiwania rozwiązania numerycznego zapis równania w takiej formie nie jest zalecany, ponieważ rozwiązanie równania w wersji układu liniowego jest niewydajne obliczeniowo i źle uwarunkowane).
Jeśli i są kanonicznymi formami Jordana macierzy i a i są ich wartościami własnymi, można zapisać:
Ponieważ jest górną macierzą trójkątną z elementami na przekątnej macierz po lewej stronie jest osobliwa wtedy i tylko wtedy, gdy istnieje i takie że
W ten sposób dowiedzione zostało, że równanie Sylvestera ma jednoznaczne rozwiązanie, wtedy i tylko wtedy macierze i nie mają wspólnych wartości własnych.
Rozwiązanie numeryczne
[edytuj | edytuj kod]Klasyczny algorytm rozwiązania numerycznego równania Sylvestera jest algorytm Bartelsa-Stewarta, na który składa się przekształcenie macierzy i do postaci Schura (zob. rozkład Schura) za pomocą algorytmu QR, a następnie rozwiązanie układu trójkątnego poprzez podstawienie w tył dla macierzy trójkątnej. Algorytm ten, którego złożoność obliczeniowa wynosi operacji arytmetycznych, wykorzystywany jest w pakietach oprogramowania LAPACK, Matlab i GNU Octave (w funkcji lyap
).